package com.cms.recursoshumanos.json.object;

import com.cms.recursoshumanos.cache.UserInfoCache;
import com.cms.recursoshumanos.constant.Constant;
import com.cms.recursoshumanos.json.me.JSONArray;
import com.cms.recursoshumanos.json.me.JSONException;
import com.cms.recursoshumanos.json.me.JSONObject;
import com.cms.recursoshumanos.object.Persona;
import com.cms.recursoshumanos.object.Poliza;
import com.cms.recursoshumanos.object.Seguro;
import com.cms.recursoshumanos.utilities.Tool;

public class JsonObjectGetSeguro 
{

	private static JsonObjectGetSeguro _instance = null;
	public static JsonObjectGetSeguro getInstance() {
		if(_instance == null)
			_instance = new JsonObjectGetSeguro();
		
		return _instance;
	}
	public JsonObjectGetSeguro()
	{
	}
	private String Result;
	private static final String 
			GETSEGURO = "GETSEGURO",
			GETSEGURO_STATUS = "STATUS",
			GETSEGURO_DATA = "DATA",
		
			GETSEGURO_DATOS_SEGURO = "DATOS_SEGURO",		
			GETSEGURO_SEGURO_ID = "seguro_id",
			GETSEGURO_SEGURO_NOMBRE = "nombre_seguro",
			GETSEGURO_SEGURO_RIF = "rif_seguro",	
			GETSEGURO_SEGURO_NRO_TLF_1 = "nro_tlf_seguro_1",
			GETSEGURO_SEGURO_NRO_TLF_2 = "nro_tlf_seguro_2",
			
			GETSEGURO_POLIZA_ID = "poliza_id",
			GETSEGURO_POLIZA_NUMERO = "numero_poliza",
			GETSEGURO_POLIZA_CANT_ASEGURADA = "cant_asegurada",
			GETSEGURO_POLIZA_PRIMA = "prima_seguro",
			GETSEGURO_POLIZA_FECHA_INIC = "fecha_inic_poliza",
			GETSEGURO_POLIZA_FECHA_FIN = "fecha_fin_poliza",
			
			GETSEGURO_CORREDOR_NOMBRE = "nombre_corredor",
			GETSEGURO_CORREDOR_APELLIDO = "apellido_corredor",
			GETSEGURO_CORREDOR_NRO_TLF_1 = "nro_tlf_corredor_1",
			GETSEGURO_CORREDOR_NRO_TLF_2 = "nro_tlf_corredor_2",
			GETSEGURO_CORREDOR_EMAIL = "email_corredor";	
	

	
	
	
	public void fromJSON (String jsonString) 
	{
		if (jsonString != null)
		{
			if (!jsonString.equals(""))
			{
				try
				{
					JSONObject jsonObject = new JSONObject(jsonString);
				
					if (jsonObject != null) 
					{
						
						JSONObject getSeguro = jsonObject.getJSONArray(GETSEGURO).getJSONObject(0);
						String status = getSeguro.getString(GETSEGURO_STATUS);
						
						Result = status;
						
						if (status.equals(Constant.CODE_OK))
						{
		
							Poliza laPoliza = new Poliza();
							JSONArray data = getSeguro.getJSONArray(GETSEGURO_DATA);
							JSONObject objeto_data = data.getJSONObject(0);
							JSONObject datos_seguro = objeto_data.getJSONArray(GETSEGURO_DATOS_SEGURO).getJSONObject(0);
							
							laPoliza = this.getLaPoliza(datos_seguro);
		
							UserInfoCache.getInstance().setPoliza(laPoliza);
							UserInfoCache.getInstance().setFechaCache(6);
							
							//Tool.getInstance().saveUserInfoShared(MainRecursosHumanosActivity.getAppContext(),7,laPoliza);
						}
					}
				} 
				catch (JSONException ex) 
				{
					ex.printStackTrace();
					Result = Constant.CODE_EMPTY;
					
				}
				catch (Exception ex) 
				{
					ex.printStackTrace();
					Result = Constant.CODE_EMPTY;
				}
			}
			else
			{
				Result = Constant.CODE_NOT_SERVER_RESPONSE;
			}
		}
		else
		{
			Result = Constant.CODE_NOT_SERVER_RESPONSE;
		}

	}
	public Poliza getLaPoliza(JSONObject json_poliza)
	{
		try 
		{

			Poliza laPoliza = new Poliza(Integer.parseInt(json_poliza.getString(GETSEGURO_POLIZA_ID)),
											json_poliza.getString(GETSEGURO_POLIZA_NUMERO),
											Float.parseFloat(json_poliza.getString(GETSEGURO_POLIZA_CANT_ASEGURADA)),
											Float.parseFloat(json_poliza.getString(GETSEGURO_POLIZA_PRIMA)),
											Tool.getInstance().parseStringToDate(json_poliza.getString(GETSEGURO_POLIZA_FECHA_INIC)),
											Tool.getInstance().parseStringToDate(json_poliza.getString(GETSEGURO_POLIZA_FECHA_FIN)),
											null,
											new Seguro(Integer.parseInt(json_poliza.getString(GETSEGURO_SEGURO_ID)),
													json_poliza.getString(GETSEGURO_SEGURO_RIF),
													json_poliza.getString(GETSEGURO_SEGURO_NOMBRE),
													json_poliza.getString(GETSEGURO_SEGURO_NRO_TLF_1),
													(json_poliza.getString(GETSEGURO_SEGURO_NRO_TLF_2).equals("null") ?
															null:
																json_poliza.getString(GETSEGURO_SEGURO_NRO_TLF_2)),
													new Persona(0,
																	null,
																	json_poliza.getString(GETSEGURO_CORREDOR_NOMBRE),
																	null,
																	json_poliza.getString(GETSEGURO_CORREDOR_APELLIDO),
																	null,
																	null,
																	json_poliza.getString(GETSEGURO_CORREDOR_NRO_TLF_1),
																	(json_poliza.getString(GETSEGURO_CORREDOR_NRO_TLF_2).equals("null") ?
																			null:
																				json_poliza.getString(GETSEGURO_CORREDOR_NRO_TLF_2)),
																	null,
																	null,
																	null,
																	json_poliza.getString(GETSEGURO_CORREDOR_EMAIL))
													));
			
			return laPoliza;
		} 
		catch (NumberFormatException e) 
		{
			e.printStackTrace();
			return null;
		} 
		catch (JSONException e) 
		{
			e.printStackTrace();
			return null;
		}
	}
	public String getResult()
	{
		return Result;
	}
	
}